package com.yonyou.cyxdms.basedata.service.vo.option;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeDeserializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeQueryBeginDeserializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeQueryBeginSerializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 根据查询条件返回对应的选装数据
 *
 * @author zhangys
 * @since 2020/2/24
 */
@ApiModel(value = "VehicleProductOptionVO", description = "根据查询条件返回对应的选装数据")
public class VehicleProductOptionVO {


    @ApiModelProperty(value = "品牌ID")
    private Integer brandId;
    
    @ApiModelProperty(value = "车系ID")
    private Integer seriesId;

    @ApiModelProperty(value = "车型ID")
    private Integer modelId;
    
    @ApiModelProperty(value = "配置ID")
    private Integer packageId;
    
    @ApiModelProperty(value = "选装ID")
    private Integer optionId;
    
    @ApiModelProperty(value = "品牌名称")
    private String brandName;

    @ApiModelProperty(value = "车系名称")
    private String seriesName;

    @ApiModelProperty(value = "车型名称")
    private String modelName;

    @ApiModelProperty(value = "配置名称")
    private String configName;

    @Excel(name = "选装代码")
    @ApiModelProperty(value = "选装代码")
    private String optionCode;
    
    @ApiModelProperty(value = "选装名称")
    private String optionName;
    
    @ApiModelProperty(value = "数据来源-1045")
    private Integer dataSources;

    @ApiModelProperty(value = "是否有效-1004")
    private Integer isValid;
    
    @ApiModelProperty(value = "版本号")
    private Integer recordVersion;

    @ApiModelProperty(value = "经销商代码")
    private String ownerCode;

    @ApiModelProperty(value = "经销商简称")
    private String dealerShortname;


    @ApiModelProperty(value = "启用时间")
    @JsonDeserialize(using = JsonLocalDateTimeQueryBeginDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeQueryBeginSerializer.class)
    private LocalDateTime startDate;

    @ApiModelProperty(value = "选装ID列表")
    private Integer optionIds;

    @ApiModelProperty(value = "修改时间")
    @JsonDeserialize(using = JsonLocalDateTimeQueryBeginDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeQueryBeginSerializer.class)
    private LocalDateTime updatedAt;

    @ApiModelProperty(value = "创建时间")
    @JsonDeserialize(using = JsonLocalDateTimeQueryBeginDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeQueryBeginSerializer.class)
    private LocalDateTime createdAt;

    private String createdBy;

    private String updatedBy;

    public Integer getPackageId() {
        return packageId;
    }

    public void setPackageId(Integer packageId) {
        this.packageId = packageId;
    }

    public Integer getBrandId() {
        return brandId;
    }

    public void setBrandId(Integer brandId) {
        this.brandId = brandId;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public Integer getSeriesId() {
        return seriesId;
    }

    public void setSeriesId(Integer seriesId) {
        this.seriesId = seriesId;
    }

    public String getSeriesName() {
        return seriesName;
    }

    public void setSeriesName(String seriesName) {
        this.seriesName = seriesName;
    }

    public Integer getModelId() {
        return modelId;
    }

    public void setModelId(Integer modelId) {
        this.modelId = modelId;
    }

    public String getModelName() {
        return modelName;
    }

    public void setModelName(String modelName) {
        this.modelName = modelName;
    }

    public String getConfigName() {
        return configName;
    }

    public void setConfigName(String configName) {
        this.configName = configName;
    }

    public Integer getRecordVersion() {
        return recordVersion;
    }

    public void setRecordVersion(Integer recordVersion) {
        this.recordVersion = recordVersion;
    }

    public String getOwnerCode() {
        return ownerCode;
    }

    public void setOwnerCode(String ownerCode) {
        this.ownerCode = ownerCode;
    }

    public String getDealerShortname() {
        return dealerShortname;
    }

    public void setDealerShortname(String dealerShortname) {
        this.dealerShortname = dealerShortname;
    }

	public Integer getOptionId() {
		return optionId;
	}

	public void setOptionId(Integer optionId) {
		this.optionId = optionId;
	}

	public String getOptionCode() {
		return optionCode;
	}

	public void setOptionCode(String optionCode) {
		this.optionCode = optionCode;
	}

	public String getOptionName() {
		return optionName;
	}

	public void setOptionName(String optionName) {
		this.optionName = optionName;
	}

	public Integer getDataSources() {
		return dataSources;
	}

	public void setDataSources(Integer dataSources) {
		this.dataSources = dataSources;
	}

	public Integer getIsValid() {
		return isValid;
	}

	public void setIsValid(Integer isValid) {
		this.isValid = isValid;
	}

    public LocalDateTime getStartDate() {
        return startDate;
    }

    public void setStartDate(LocalDateTime startDate) {
        this.startDate = startDate;
    }

    public Integer getOptionIds() {
        return optionIds;
    }

    public void setOptionIds(Integer optionIds) {
        this.optionIds = optionIds;
    }

    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }

    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public String getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    @Override
	public String toString() {
		return "VehicleProductOptionVO [brandId=" + brandId + ", seriesId=" + seriesId + ", modelId=" + modelId
				+ ", packageId=" + packageId + ", optionId=" + optionId + ", brandName=" + brandName + ", seriesName="
				+ seriesName + ", modelName=" + modelName + ", configName=" + configName + ", optionCode=" + optionCode
				+ ", optionName=" + optionName + ", dataSources=" + dataSources + ", isValid=" + isValid
				+ ", recordVersion=" + recordVersion + ", ownerCode=" + ownerCode + ", dealerShortname="
				+ dealerShortname + ",  startDate=" + startDate +  ", optionIds=" + optionIds +  "]";
	}

    
}
